#ifndef __BSP_H_
#define __BSP_H_



#define bool _Bool
#define true 1
#define false 0

//从1开始
enum k210_msg
{
	red_light = 1,
	green_light,
	school,
	walk,
	one,
	right,
	two,
	freeSpeed,
	left,
	limitSpeed,
	horn,
	chuku_track_line,
	MAX_id
};
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
#define __IO volatile

#include "stdio.h"
#include "string.h"
#include <math.h>
#include "main.h"
#include "tim.h"
#include "gpio.h"
#include "usart.h"
#include "bsp_usart1.h"
#include "stdint.h"
#include "bsp_oled.h"
#include "bsp_oled_i2c.h"
#include "oled_fonts.h"
#include "bsp_oled_i2c.h"
//#include "bsp_adc.h"

#include "bsp_MPU6050.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h"
#include "dmpKey.h"
#include "dmpmap.h"
#include "mpu6050.h"

extern uint8_t stop_flag;
extern uint32_t n_stime ;
extern uint16_t wait_k210;
extern uint8_t bound_num;



#include "bsp_encoder.h"
#include "bsp_motor.h"
#include "bsp_tim.h"
#include "bsp_PID_motor.h"
#include "app_motor.h"
#include "bsp_k210.h"
#include "delay.h"

#include "bsp_usart2.h"

#include "bsp_irtracking.h"

#include "bsp_buzzer.h"
#include "bsp_irremote.h"
#include "bsp_led.h"
#include "bsp_adc.h"

#include "app_irtracking.h"
#include "app_motor.h"
#include "bsp_task.h"

#define VERSION_MAJOR          0x03
#define VERSION_MINOR          0x05
#define VERSION_PATCH          0x02

#define MODE_STANDARD          (0)
#define MODE_TEST              (1)
typedef enum 
{
    IMU_TYPE_ICM20948 = 0,
    IMU_TYPE_MPU9250 = 1,
	IMU_TYPE_MPU6050 = 2,

    IMU_TYPE_MAX = 0xFF
} IMU_Type_t;

void BSP_Init(void);
void Bsp_Send_Version(void);
void BSP_Loop(void);
void Leave_Stop(void);

#endif
